package statemachine;

/**
 * 正在出售状态类
 * 
 * @author guweiqiang
 * 2018年7月4日
 */
public class SoldState implements State {
	
	private Machine machine;

	public SoldState(Machine machine) {
		this.machine = machine;
	}
	
	// 投币
	public void insertCoin() {
		System.out.println("请等待，正在出货!");
	}

	// 退回硬币
	public void ejectCoin() {
		System.out.println("正在出货，无法退回硬币！");
	}

	// 转动摇柄
	public void turnCrank() {
		System.out.println("请不要重复转动摇柄!");
	}

	// 喷出糖果
	public void dispense() {
		// 喷出糖果
		machine.releaseBall();
		if(machine.getCount()>0) { // 还有糖果，可以继续出售
			machine.setState(machine.getNonCoinState());
		} else { // 已售光
			machine.setState(machine.getSoldOutState());
		}
	}

}
